package com.lanou3g.code0411;

/**
 * Created by dllo on 18/4/11.
 */

//泛型类的使用:在使用一个泛型类的时候,在定义这个类时,需要在类名后使用<确定类型>,来告诉泛型类,它定义的泛型究竟是什么类型的,对应我们的代码,
//即告诉Foo它里面的T究竟是什么类型的,需要注意的是,在使用时需要填入确定的,已有的类型,而不能再次使用不确定的字母表示
//当定义完成后,这个对象中的所有的泛型(即Foo中的),都会被转换成确定的类型,所以在方法中,参数/返回值类型就可以确定下来了

public class Test02 {
    public static void main(String[] args) {

        //用的时候需要那个类型就给那个类型
//        Foo<String> foo = new Foo<String>(); //String灰色说明没有用,可以删掉 ;1.6版本的java开发,不许写<>中的String
//                                             //这种机制叫做类型推测
//        foo.setT("Hello");
//        String a = foo.getT();
//
//        Foo<Person> foo1 = new Foo<>();
//        foo1.setT(new Person());
//        Person p = foo1.getT();
//
//        Foo<Object> foo2 = new Foo<>();
//        foo2.setT("World");
//        foo2.setT(new Person());
//
//        // 没有给<>,默认是Objects
//        //如果定义泛型类时,没有指定泛型,则泛型会默认使用object代替
//        Foo foo3 = new Foo();
//        foo3.setT("Name");
//        foo3.setT(new Person());
         Foo<String,Integer> foo = new Foo<>(); //String灰色说明没有用,可以删掉 ;1.6版本的java开发,不许写<>中的String
                                             //这种机制叫做类型推测
        foo.setT("Hello");
        foo.fun("Hello",10);
        String a = foo.getT();

    }
}
